/**
 * @author peter.zheng
 * 公用tab插件
 * 用法：$("#test").app_widgets_tab({参数选项});
 * 2011/04/12
 * fixed bug 2014/09/12
 */
if(window.Zepto){
    jQuery=window.Zepto;
};
 (function($){
     $.extend($.fn,{
         app_widgets_tab:function(opts){
             return this.each(function(){
                 var obj=$(this).data();
                 var options=$.extend(
                     {
                         currentClass:"current",
                         tabMenu:null,
                         tabElement:"li",
                         tabContent:null,
                         triggerEvent:"mouseover",
                         callback:null,
                         triggerIndex:null
                     },opts||{},obj
                 );
                 //指定父容器
                 var $_tabElement=$(this).find(options.tabMenu).find(options.tabElement);
                 var that=$(this);
                 $_tabElement.bind(options.triggerEvent,function(){
                     var $_liCurrent=$(this),$_panels=that.find(options.tabContent);
                     $_tabElement.removeClass(options.currentClass);
                     var $_index=$_tabElement.index(this);
                     $_tabElement.eq($_index).addClass(options.currentClass);
                     $_panels.hide();
                     $_panels.eq($_index).show();
                     options.$_current=$_liCurrent;
                     options._nowIndex=$_index;
                     if(typeof(options.callback)=='function'&&options.callback!=null){
                         options.callback();
                     }else if(options.callback!=null&&typeof(options.callback).toLowerCase()=="string"){
                         //options,li,index,pannel
                         window[options.callback].apply(that,[options,$_liCurrent,$_index,$_panels]);
                     }
                     return false;
                 })
                 if(options.triggerIndex!=null&&typeof(options.triggerIndex)=='number'){
                     $_tabElement.eq(options.triggerIndex).trigger(options.triggerEvent);
                 }
             });
         }
     });
	 })(jQuery);
